package ar.edu.siglo21.taller.algoritmo.controlador;

import java.util.ArrayList;
import java.util.List;

import ar.edu.siglo21.taller.algoritmo.exception.MyException;
import ar.edu.siglo21.taller.algoritmo.model.Materia;
import ar.edu.siglo21.taller.algoritmo.model.PilaVector;

public class ControladorMateria {

	private List<Materia> listaMaterias;
	private PilaVector pilaMaterias;

	public ControladorMateria() {
		listaMaterias = new ArrayList<Materia>();
		pilaMaterias = new PilaVector();
	}

	public void crearMateria(int codigo, String denominacion, int semestre) {
		Materia materia = new Materia(codigo, denominacion, semestre);
		listaMaterias.add(materia);
		pilaMaterias.apilar(materia);

		System.out.println("Se ha ingresado la materia con exito \n");

	}

	public List<Materia> getListaMaterias() {
		return listaMaterias;
	}

	public void setListaMaterias(List<Materia> listaMaterias) {
		this.listaMaterias = listaMaterias;
	}

	public Materia buscarMateriaPorCodigo(int codigo) throws MyException {
		Materia materiaEncontrada = null;
		for (Materia materia : listaMaterias) {
			if (codigo == materia.getCodigo()) {
				materiaEncontrada = new Materia();
				materiaEncontrada.setCodigo(materia.getCodigo());
				materiaEncontrada.setDenominacion(materia.getDenominacion());
				materiaEncontrada.setSemestre(materia.getSemestre());
			}
		}
		if (materiaEncontrada == null) {
			throw new MyException("la materia con codigo " + codigo
					+ "no existe");
		}
		return materiaEncontrada;
	}

	/*
	 * public void listarMaterias() { for (Materia materia : listaMaterias) {
	 * System.out.println(materia.toString()); } }
	 */
	public void listarMaterias() {
		pilaMaterias.imprimir();
	}
}
